package com.zx.pm.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zx.common.annotation.Excel;
import com.zx.common.core.domain.BaseEntity;

/**
 * 实施项目信息对象 implementation_project
 *
 * @author ruoyi
 * @date 2025-09-08
 */
public class ImplementationProject extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 项目ID */
    @Excel(name = "项目ID")
    private Long projectId;

    /** 实施编号 */
    @Excel(name = "实施编号")
    private String implementationNo;

    /** 开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /** 结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /** 实施团队 */
    @Excel(name = "实施团队")
    private String implementationTeam;

    /** 外包状态：0-非外包，1-外包 */
    @Excel(name = "外包状态：0-非外包，1-外包")
    private Integer outsourcingStatus;

    /** 外包公司 */
    @Excel(name = "外包公司")
    private String outsourcingCompany;

    /** 进度(百分比) */
    @Excel(name = "进度(百分比)")
    private Long progress;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setProjectId(Long projectId)
    {
        this.projectId = projectId;
    }

    public Long getProjectId()
    {
        return projectId;
    }

    public void setImplementationNo(String implementationNo)
    {
        this.implementationNo = implementationNo;
    }

    public String getImplementationNo()
    {
        return implementationNo;
    }

    public void setStartDate(Date startDate)
    {
        this.startDate = startDate;
    }

    public Date getStartDate()
    {
        return startDate;
    }

    public void setEndDate(Date endDate)
    {
        this.endDate = endDate;
    }

    public Date getEndDate()
    {
        return endDate;
    }

    public void setImplementationTeam(String implementationTeam)
    {
        this.implementationTeam = implementationTeam;
    }

    public String getImplementationTeam()
    {
        return implementationTeam;
    }

    public void setOutsourcingStatus(Integer outsourcingStatus)
    {
        this.outsourcingStatus = outsourcingStatus;
    }

    public Integer getOutsourcingStatus()
    {
        return outsourcingStatus;
    }

    public void setOutsourcingCompany(String outsourcingCompany)
    {
        this.outsourcingCompany = outsourcingCompany;
    }

    public String getOutsourcingCompany()
    {
        return outsourcingCompany;
    }

    public void setProgress(Long progress)
    {
        this.progress = progress;
    }

    public Long getProgress()
    {
        return progress;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("projectId", getProjectId())
            .append("implementationNo", getImplementationNo())
            .append("startDate", getStartDate())
            .append("endDate", getEndDate())
            .append("implementationTeam", getImplementationTeam())
            .append("outsourcingStatus", getOutsourcingStatus())
            .append("outsourcingCompany", getOutsourcingCompany())
            .append("progress", getProgress())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
